package com.zhentao.ai.model;

import com.zhentao.ai.model.features.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.Map;

/**
 * 特征向量
 * 包含从原始数据中提取的所有特征
 * 
 * @author zhentao
 * @date 2024-12-19
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class FeatureVector {
    
    /**
     * 参数键
     */
    private String paramKey;
    
    /**
     * 特征提取时间
     */
    private LocalDateTime extractionTime;
    
    /**
     * 时间特征
     */
    private TimeFeatures timeFeatures;
    
    /**
     * 统计特征
     */
    private StatisticalFeatures statisticalFeatures;
    
    /**
     * 趋势特征
     */
    private TrendFeatures trendFeatures;
    
    /**
     * 周期性特征
     */
    private CyclicalFeatures cyclicalFeatures;
    
    /**
     * 性能特征
     */
    private PerformanceBasedFeatures performanceFeatures;
    
    /**
     * 异常特征
     */
    private AnomalyBasedFeatures anomalyFeatures;
    
    /**
     * 自定义特征
     */
    private Map<String, Object> customFeatures;
    
    /**
     * 特征版本
     */
    private String featureVersion = "1.0";
}
